<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>
    <script>

        // 数组的查询
        // 1. filter 筛选/过滤
        // 案例：挑选出数组中 字母数大于等于5的 返回新数组
        // const arr = ['hello', 'from', 'to', 'world'];

        // function filter (arr) {
        //     const result = [];
        //     for (const item of arr) {
        //         if (item.length >= 5) {
        //             result.push(item);
        //         }
        //     }
        //     return result;
        // }

        // console.log(filter(arr));

        // 数组项
        // 生成规则的函数 输入数组项 返回筛选条件
        // function check (item) {
        //     return item.length >= 5;
        // }

        // // const res = arr.filter(check);
        // const res = arr.filter(function (item) {
        //     return item.length >= 5;
        // });

        // console.log(res);

        // filter find findIndex some every indexOf includes

        // map
        const arr = [1, 2, 3, 4];

        // const res = [1, 4, 9, 16];

        // function transformArr (arr) {
        //     const res = [];
        //     for (const item of arr) {
        //         // item的平方: Math.pow(item, 2)  ||  item ** 2
        //         res.push(item ** 2);
        //     }
        //     return res;
        // }


        // console.log(transformArr(arr));

        // const res = arr.map(function (item) {
        //     return item ** 2;
        // });

        // // 输入
        // const arr1 = ['hello', 'world', 'abc', 'e', 'arguments'];

        // // 期待的结果
        // const res1 = [5, 5, 3, 1, 9];

        // console.log(arr1.map(function (item) {
        //     return item.length;
        // }));

        // 1
        // const input = [
        //     {
        //         name: 'zhangsan',
        //         age: 18,
        //     },
        //     {
        //         name: 'lisi',
        //         age: 18,
        //     },
        //     {
        //         name: 'wangmazi',
        //         age: 19,
        //     },
        // ];

        // const output = ['zhangsan', 'lisi', 'wangmazi'];

        // const res = input.map(function (item) {
        //     return item.name;
        // });

        // 2.
        // const input = [
        //     {
        //         name: 'zhangsan',
        //         age: 18,
        //     },
        //     {
        //         name: 'lisi',
        //         age: 18,
        //     },
        //     {
        //         name: 'wangmazi',
        //         age: 19,
        //     },
        // ];

        // const output = [
        //     ['zhangsan', 18],
        //     ['lisi', 18],
        //     ['wangmazi', 19],
        // ];

        // const res = input.map(function (item) {
        //     return [item.name, item.age];
        // });

        // 3.
        // const input = [
        //     [1, 2],
        //     [19, 18],
        //     [20, 19],
        //     [-1, 0],
        // ];

        // const output = [1, 18, 19, -1];

        // console.log(input.map(function (item) { // [1, 2]
        //     // 数组解构 es6
        //     return Math.min(...item);
        // }));

        // 4.
        // const input = [1.2, 1, 2.3, Math.PI, 5.7];

        // const output = [1, 1, 2, 3, 5];

        // console.log(input.map(function (item) {
        //     return Math.floor(item);
        // }));

        // 5.
        const input = [
            {
                name: 'zhangsan',
                age: 18,
            },
            {
                name: 'lisi',
                age: 18,
            },
            {
                name: 'wangmazi',
                age: 19,
            },
        ];

        const output = [
            {
                a: 'zhangsan',
                b: 18,
            },
            {
                a: 'lisi',
                b: 18,
            },
            {
                a: 'wangmazi',
                b: 19,
            },
        ];

        console.log(input.map(function (item) {
            return {
                a: item.name,
                b: item.age,
            };
        }));


    </script>
</body>
</html>